function onloadJS() {
    
    /*
    *автоподгрузчик городов
    **/
    $("#city").autocomplete(W_AJAX + "city/getCity.php", {
        delay:10,
        minChars:1,
        matchSubset:1,
        autoFill:true,
        matchContains:1,
        cacheLength:10,
        selectFirst:true,
        maxItemsToShow:10
    });
    
    /*
    *автоподгрузчик городов
    **/
   
    $("#buildings").autocomplete(W_AJAX + "building/buildings.php", {
        delay:10,
        minChars:1,
        matchSubset:1,
        autoFill:true,
        matchContains:1,
        cacheLength:10,
        selectFirst:true,
        maxItemsToShow:10
    });  
    
    
    isLoggedIn = document.getElementById("isLoggedIn").value; //глобальная перменная показывающая залогинен ли пользователь
    
    /**
     *массив, хранящий значение введенных данных о фирме
     */
    firmInfo = {};
    firmInfo.mailbox = '';
    firmInfo.patternOfOwn = '';
    firmInfo.dayReg = '';
    firmInfo.monthReg = '';
    firmInfo.yearReg = '';
    firmInfo.specialization = '';
    firmInfo.name = '';
    firmInfo.postRegistrant = '';
    firmInfo.description = '';
    firmInfo.sphere = '';  
    firmInfo.nameBuilding = '';
    firmInfo.numberFloor = '';
    firmInfo.office = '';
    firmInfo.branch = '';
    
    
}


/*
 *JS функция аналогичная PHP trim
 *@param string s - входная строка
 *@return string - выходная отформотированная строка
 **/
function TrimStr(s) {
  if (typeof s != "undefined"){
    s = s.replace( /^\s+/g, '');
    return s.replace( /\s+$/g, '');
  }
  else{
      return '';
  }
}

/*
 *Функция, которая при выборе сферы действия фирмы выдет список специализаций для выбранной сферы.
 *@return void;
 **/
function getSpecialization(){
    //var idSphere = document.getElementById('sphereFirm').value; //айди сферы деятельности фирмы
    
    /*
     *считываем какие сферы выбраны и передаем на сервак
     **/
    var idSphere = [];
    var obj = document.getElementById('sphereFirm'); 
    if (!obj.options){

    }
    else{
        var selectedOptions = [];
        for (var i = 0; i < obj.options.length; i++) if (obj.options[i].selected) 
        idSphere.push(obj.options[i].value);
    }
    //конец блока считывания данных о сферах деятельности
    
    /*
     *считываем выбранные специализации и отправляем данные на сервак
     **/
    var div = document.getElementById('tdSpecialization')
    var elems = div.getElementsByTagName('select')
    
    var selectedOptionsSpec = [0];
    for(var i=0; i<elems.length; i++){
        var obj = document.getElementById(elems[i].id); 
        for (var i1 = 0; i1 < obj.options.length; i1++)
            if (obj.options[i1].selected) 
                selectedOptionsSpec.push(obj.options[i1].value); 
    } 
    //конец блока выборки выбранных специализаций
    
        var  dataSend={
                 query: 'getListSpecialization',
                 idSphere : idSphere,
                 selectedOptionsSpec : selectedOptionsSpec
        }
        
        $.post(
            W_AJAX + "controllerFirm.php",
            {
                dataSend : dataSend
            },
            function(data){
                var serverAnswer = data;
                    $('#tdSpecialization').innerHTML='';
                    document.getElementById('tdSpecialization').innerHTML = serverAnswer;
                },
            'text'
        ); 
}

/*
 *При невведенном значении города, надпись "введите город" исчезает
 *@return void;
 **/
function inputCityFocus(){
   
   var country = document.getElementById('city').value; 
   
   if (country == 'введите город')
       document.getElementById('city').value = ''; 
}

/*
 *При пустом значении в инпуте  города, это пустое значение меняется на надпись "введите город"
 *@return void;
 **/
function inputCityBlur(){
   
   var country = document.getElementById('city').value; 
   
   if (country == '')
       document.getElementById('city').value = 'введите город';
}



function regFirm(){
    if (isLoggedIn == '0')
      firmInfo.mailbox = document.getElementById('mailbox').value;
  
    firmInfo.name = document.getElementById('nameFirm').value;
     
    //firmInfo.sphere = document.getElementById('sphereFirm').value;
   
   /*
     *считываем выбранные специализации и отправляем данные на сервак
     **/
    var div = document.getElementById('tdSpecialization')
    var elems = div.getElementsByTagName('select')
    
    var selectedOptionsSpec = [0];
    for(var i=0; i<elems.length; i++){
        var obj = document.getElementById(elems[i].id); 
        for (var i1 = 0; i1 < obj.options.length; i1++)
            if (obj.options[i1].selected) 
                selectedOptionsSpec.push(obj.options[i1].value); 
    } 
    //конец блока выборки выбранных специализаций
    

    var elements= document.getElementsByClassName('podpodRazdel');

    var specialization = [0];
    var i = 0;
    for(var key in elements){
        if (elements[key].checked){
            var x = elements[key].id;
            specialization[i] = x.substr(3,x.length);
            i++;
        }
    }

  // console.log(specialization);
    
    firmInfo.specialization = specialization;
//    if($("#specializationFirm").length>0)
//        firmInfo.specialization = document.getElementById('specializationFirm').value;
   
   
   firmInfo.branch = document.getElementById('branch').value;
   
    firmInfo.description = document.getElementById('descriptionFirm').value;
    
    firmInfo.patternOfOwn = document.getElementById('patternOfOwn').value;
    
    firmInfo.dayReg = document.getElementById('dayReg').value;
    
    firmInfo.monthReg = document.getElementById('monthReg').value;
    
    firmInfo.yearReg = document.getElementById('yearReg').value;
    
    firmInfo.postRegistrant = document.getElementById('postRegistrant').value;
    
    if($("#typeInn").length>0)
        var typeInn = document.getElementById('typeInn').value;
    else
        var typeInn = 0;
        
    firmInfo.nameBuilding = document.getElementById('buildings').value;
    
    if ($("#numberFloor").length > 0)
        firmInfo.numberFloor = document.getElementById('numberFloor').value;
    else
        firmInfo.numberFloor = 0;
    
    if ($("#numberOffice").length > 0)
        firmInfo.office = document.getElementById('numberOffice').value;
    else
        firmInfo.office = 0;
    
         
        /*
        *получаем данные о городе, стране и адресе из введенных форм на страничке 
        */
        var cityCountry = document.getElementById('city').value; // формат :город(страна). Пр-р: "Москва(Россия)"

        /*
        *парсим город(страна) на отдельные составляющие : город и страна
        **/
        cityName = '';
        countryName = '';
        var myRe = /(^[ 0-9А-Яа-я_-]+)(\(([ 0-9А-Яа-я_-]+)\))?/g;//регулярка для вытаскивания имен города и страны
        if ((myArray = myRe.exec(cityCountry)) != null) {
            cityName = myArray[1];
            cityName = TrimStr(cityName);
            countryName = myArray[3];
            countryName = TrimStr(countryName);
        }

        /*
        *в случае, если пользователем было некорректно введено значение в поле "город", то выводим соответсвующую ошибку и дальше не продолжаем выполнение скрипта
        **/
        if((cityName == "") || (countryName == "")){
            alert('Город введен некорректно');      
        }
        else{
            regFirmPart1(typeInn); 
        }
}

/*
 *продолжение функции regFirmPart после ajax-запроса геокодера
 *return none
 **/
function regFirmPart1(typeInn){
    
    var flagNoneErrors = true;
        
     if (isLoggedIn != 1 && firmInfo.mailbox == '' && flagNoneErrors){
         alert("Вы не ввели свой почтовый ящик");
         flagNoneErrors = false;
     }
     
     if (firmInfo.name == '' && flagNoneErrors){
         alert("Вы не ввели название фирмы"); 
         flagNoneErrors = false;
     }
       
     if (firmInfo.sphere == '0' && flagNoneErrors){
         alert("Вы не ввели сферу деятельности фирмы");     
         flagNoneErrors = false;
     }
     
     if (firmInfo.specialization == '0' && flagNoneErrors){
         alert("Вы не ввели специалиазацию фирмы");   
         flagNoneErrors = false;
     }
     
     if (firmInfo.description == '' && flagNoneErrors){
         alert("Вы не ввели описание фирмы"); 
         flagNoneErrors = false;
     }
     
     if (firmInfo.patternOfOwn == '0' && flagNoneErrors){
         alert("Вы не указала форму собственности фирмы");
         flagNoneErrors = false;
     }
     
     if (firmInfo.dayReg == '0' && flagNoneErrors){
         alert("Вы не указала день регистрации фирмы");
         flagNoneErrors = false;
     }
     
     if (firmInfo.monthReg == '0' && flagNoneErrors){
         alert("Вы не указала месяц регистрации фирмы");
         flagNoneErrors = false;
     }
     
     if (firmInfo.yearReg == '0' && flagNoneErrors){
         alert("Вы не указала год регистрации фирмы");
         flagNoneErrors = false;
     }
     
     if (firmInfo.postRegistrant == '0' && flagNoneErrors){
         alert("Вы не указали своё отношение к фирме");
         flagNoneErrors = false;
     }
     
     if (typeInn == '0' && flagNoneErrors){
         alert("Вы не выбрали тип помещения");
         flagNoneErrors = false;
     }
     
     if (firmInfo.nameBuilding == '0' && flagNoneErrors){
         alert("Вы не выбрали здание");
         flagNoneErrors = false;
     }

     if (firmInfo.numberFloor == '0' && flagNoneErrors){
         alert("Вы не выбрали этаж");
         flagNoneErrors = false;
     }
     
     if (firmInfo.office == '0' && flagNoneErrors){
         alert("Вы не указали оффис");
         flagNoneErrors = false;
     }
     
     //если нет ошибок, то отправляем данные для регистрации
    if (flagNoneErrors){
        var  dataSend={
            query: 'registrationFirm',
            info : firmInfo
        }

        $.post(
            W_AJAX + "controllers/controllerCompany.php",
            {
                dataSend : dataSend
            },
            function(data){
                if (data.status == "true")
                    alert ('Фирма зарегистрирована');
                else
                    alert(data.error);
            },
            'json'
        );
    }
}


//function getCountFloors(){
//    var idBuilding = document.getElementById('idBuilding').value; 
//
//    var  dataSend={
//                query: 'getCountFloors',
//                idBuilding : idBuilding
//    }
//    $.post(
//        W_AJAX + "controllerFirm.php",
//        {
//            dataSend : dataSend
//        },
//        function(data){
//            var serverAnswer = data;
//                $('#tdFloors').innerHTML='';
//                document.getElementById('tdFloors').innerHTML = serverAnswer;
//            },
//        'text'
//    );    
//}


function getFloor(){
    var nameBuilding = document.getElementById('buildings').value; 

    var  dataSend={
                query: 'getCountFloors',
                nameBuilding : nameBuilding
    }
    
    $.post(
        W_AJAX + "controllers/controllerCompany.php",
        {
            dataSend : dataSend
        },
        function(data){
            var serverAnswer = data;
                $('#tdFloors').innerHTML='';
                document.getElementById('tdFloors').innerHTML = serverAnswer;
            },
        'text'
    );    
}







//function getListBuildings(){
//    
//    /*
//    *получаем данные о городе, стране и адресе из введенных форм на страничке 
//    */
//    var cityCountry = document.getElementById('city').value; // формат :город(страна). Пр-р: "Москва(Россия)"
//
//    /*
//    *парсим город(страна) на отдельные составляющие : город и страна
//    **/
//    cityName = '';
//    var myRe = /(^[ 0-9А-Яа-я_-]+)(\(([ 0-9А-Яа-я_-]+)\))?/g;//регулярка для вытаскивания имен города и страны
//    if ((myArray = myRe.exec(cityCountry)) != null) {
//        cityName = myArray[1];
//        cityName = TrimStr(cityName);
//    }
//
//    /*
//    *в случае, если пользователем было некорректно введено значение в поле "город", то выводим соответсвующую ошибку и дальше не продолжаем выполнение скрипта
//    **/
//    if(cityName == ""){
//        alert("Некорректно введен город");
//    }
//    else{
//        var typeInn = document.getElementById('typeInn').value; 
//
//        var  dataSend={
//                 query: 'getListBuildings',
//                 typeInn : typeInn,
//                 cityName : cityName
//        }
//        $.post(
//            W_AJAX + "controllerFirm.php",
//            {
//                dataSend : dataSend
//            },
//            function(data){
//                var serverAnswer = data;
//                    $('#nameFirms').innerHTML='';
//                    document.getElementById('nameFirms').innerHTML = serverAnswer;
//                },
//            'text'
//        );    
//    }
//}

function getOffices(){
    var nameBuilding = document.getElementById('buildings').value;
    var numberFloor = document.getElementById('numberFloor').value; 
    
     var  dataSend={
                 query: 'getListOffices',
                 nameBuilding : nameBuilding,
                 numberFloor : numberFloor
    }
    
    $.post(
        W_AJAX + "controllerFirm.php",
        {
            dataSend : dataSend
        },
        function(data){
            var serverAnswer = data;
                $('#offices').innerHTML='';
                document.getElementById('offices').innerHTML = serverAnswer;
            },
        'text'
    );  
}

//function getBuildings(){
//
//        /*
//    *получаем данные о городе, стране и адресе из введенных форм на страничке 
//    */
//    var cityCountry = document.getElementById('city').value; // формат :город(страна). Пр-р: "Москва(Россия)"
//
//    /*
//    *парсим город(страна) на отдельные составляющие : город и страна
//    **/
//    cityName = '';
//    var myRe = /(^[ 0-9А-Яа-я_-]+)(\(([ 0-9А-Яа-я_-]+)\))?/g;//регулярка для вытаскивания имен города и страны
//    if ((myArray = myRe.exec(cityCountry)) != null) {
//        cityName = myArray[1];
//        cityName = TrimStr(cityName);
//    }
//
//    /*
//    *в случае, если пользователем было некорректно введено значение в поле "город", то выводим соответсвующую ошибку и дальше не продолжаем выполнение скрипта
//    **/
//    if(cityName == ""){   
//    }
//    else{
//        var  dataSend={
//                    query: 'getListBuildings',
//                    cityName : cityName
//        }
//
//        $.post(
//            W_AJAX + "controllerFirm.php",
//            {
//                dataSend : dataSend
//            },
//            function(data){
//                var serverAnswer = data;
//                    $('#offices').innerHTML='';
//                    document.getElementById('offices').innerHTML = serverAnswer;
//                },
//            'text'
//        );  
//    }
//}







arrPodRazdel = {};



function showPodRazdel(numPodRazdel){
    if (typeof arrPodRazdel[numPodRazdel] == 'undefined')
        arrPodRazdel[numPodRazdel] = false;
    
        if (arrPodRazdel[numPodRazdel])
            hidePodRazdel(numPodRazdel);
        else{
            arrPodRazdel[numPodRazdel] = true;
        
            var elem = "podRazdel_" + numPodRazdel;
            var options = {};
            $("#"+elem).show( "blind", options, 500, function(){}); 
        }  
}

arrPodPodRazdel = {};
function showPodPodRazdel(numPodPodRazdel){
    if (typeof arrPodPodRazdel[numPodPodRazdel] == 'undefined')
        arrPodPodRazdel[numPodPodRazdel] = false;
    
        if (arrPodPodRazdel[numPodPodRazdel])
            hidePodPodRazdel(numPodPodRazdel);
        else{
            arrPodPodRazdel[numPodPodRazdel] = true;
        
            var elem = "podpodRazdel_" + numPodPodRazdel;
            var options = {};
            $("#"+elem).show( "blind", options, 500, function(){}); 
        }
}

function hidePodRazdel(numPodRazdel){
    var elem = "podRazdel_" + numPodRazdel;
    var options = {};
    $("#"+elem).hide( "blind", options, 500, function(){}); 
    arrPodRazdel[numPodRazdel] = false;
}

function hidePodPodRazdel(numPodPodRazdel){
    var elem = "podpodRazdel_" + numPodPodRazdel;
    var options = {};
    $("#"+elem).hide( "blind", options, 500, function(){}); 
    arrPodPodRazdel[numPodPodRazdel] = false;
}

function editCell(numberCabinet){

    var nameBuilding = document.getElementById('buildings').value;
    var numberFloor = document.getElementById('numberFloor').value; 

    var  dataSend={
        query: 'getInfOffice',
        numberCabinet : numberCabinet,
        nameBuilding : nameBuilding,
        numberFloor : numberFloor
    }

    $.post(
        W_AJAX + "controllers/controllerCompany.php",
        {
            dataSend : dataSend
        },
        function(data){
            if (data.status == "true"){
                $('#insInf').empty();
                $('#insInf').append(data.text);
                $('#frameCell').show();
            } else 
                  alert("Этот офис занят, выберите себе другой");
        },
        'json'
    );


}

function closeCell(){
    $('#frameCell').hide();
}

function getOffices(){
    var nameBuilding = document.getElementById('buildings').value;
    var numberFloor = document.getElementById('numberFloor').value; 
    
    var  dataSend={
                 query: 'getTableOffices',
                 nameBuilding : nameBuilding,
                 numberFloor : numberFloor          
    } 
    
    $.post(
        W_AJAX + "controllers/controllerCompany.php",
        {
            dataSend : dataSend
        },
        function(data){
            var serverAnswer = data;
                $('#addTable').innerHTML='';
                document.getElementById('addTable').innerHTML = serverAnswer;
            },
        'text'
    );
    
}

function saveThisOffice(numberCabinet){
     document.getElementById('numberOffice').value = numberCabinet;
}


function regOffices(){
    var nameBuilding = document.getElementById('buildings').value;
    var numberFloor = document.getElementById('numberFloor').value; 
    
     var  dataSend={
                 query: 'getListOffices',
                 nameBuilding : nameBuilding,
                 numberFloor : numberFloor
    }
    
    $.post(
        W_AJAX + "controllerFirm.php",
        {
            dataSend : dataSend
        },
        function(data){
            var serverAnswer = data;
                $('#offices').innerHTML='';
                document.getElementById('offices').innerHTML = serverAnswer;
            },
        'text'
    );  
}

function getBC(){
    
    if($("#typeInn").length>0)
        var typeInn = document.getElementById('typeInn').value;
    else
        var typeInn = 0;
    
    
    if($("#city").length>0)
        var cityCountry = document.getElementById('city').value;
    else
        var cityCountry = 0;
    
        /*
        *парсим город(страна) на отдельные составляющие : город и страна
        **/
        cityName = '';
        countryName = '';
        var myRe = /(^[ 0-9А-Яа-я_-]+)(\(([ 0-9А-Яа-я_-]+)\))?/g;//регулярка для вытаскивания имен города и страны
        if ((myArray = myRe.exec(cityCountry)) != null) {
            cityName = myArray[1];
            cityName = TrimStr(cityName);
            countryName = myArray[3];
            countryName = TrimStr(countryName);
        }
    
         /*
        *парсим название БЦ
        **/
        if($("#buildings").length>0)
            var buildings = document.getElementById('buildings').value;
        else
            var buildings = 0;
        
        var myRe = /^(.+)\((.*)\)/ig;
        
        
	if ( (myArray = myRe.exec(buildings)) != null) {
             var buildings = myArray[1];
             var address = myArray[2];
        } else
           var address = '';
    
    if (address != '') {
        var  dataSend={
                    query: 'getBCinfo',
                    typeInn : typeInn,
                    city : cityName,
                    buildings : buildings,
                    address : address
        }

        $.post(
            W_AJAX + "controllers/controllerCompany.php",
            {
                dataSend : dataSend
            },
            function(data){
                var serverAnswer = data;
                    if (serverAnswer != '') {
                        $('#BCinfo').innerHTML = '';
                        document.getElementById('BCinfo').innerHTML = serverAnswer;

                        $('#frameMap').show(); //делаем видимым окно отображения карты

                        if ($("#lat").length>0)
                            var lat = document.getElementById('lat').value;
                        else
                            var lat = 0;

                        if ($("#lng").length>0)
                            var lng = document.getElementById('lng').value;  
                        else
                            var lng = 0;

                        var myOptions = {
                            center: new google.maps.LatLng(lat, lng),
                            zoom: 14,
                            mapTypeId: google.maps.MapTypeId.ROADMAP
                        };

                        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

                        var latLng = new google.maps.LatLng(lat, lng);
                        var marker = new google.maps.Marker({ //добавляем новый маркер с координатами щелчка
                            position: latLng, //координаты маркера/щелчка
                            map: map //добавляем маркер на уже созданую карту
                        }); 
                    }

                },
            'text'
        );  
    } // end if (address != '')
}

function showPlan(a) {
        
    if($("#typeInn").length>0)
        var typeInn = document.getElementById('typeInn').value;
    else
        var typeInn = 0;
    
    
    if($("#city").length>0)
        var cityCountry = document.getElementById('city').value;
    else
        var cityCountry = 0;
    
        /*
        *парсим город(страна) на отдельные составляющие : город и страна
        **/
        cityName = '';
        countryName = '';
        var myRe = /(^[ 0-9А-Яа-я_-]+)(\(([ 0-9А-Яа-я_-]+)\))?/g;//регулярка для вытаскивания имен города и страны
        if ((myArray = myRe.exec(cityCountry)) != null) {
            cityName = myArray[1];
            cityName = TrimStr(cityName);
            countryName = myArray[3];
            countryName = TrimStr(countryName);
        }
    
    if($("#buildings").length>0)
        var buildings = document.getElementById('buildings').value;
    else
        var buildings = 0;
    
    var  dataSend={
                 query: 'getTableOffices',
                 typeInn : typeInn,
                 city : cityName,
                 nameBuilding : buildings,
                 numberFloor : a
    }
    
    $.post(
        W_AJAX + "controllers/controllerCompany.php",
        {
            dataSend : dataSend
        },
        function(data){
            var serverAnswer = data;
                if (serverAnswer != '<table border = "1"></table>') {
                    $('#showPlan').innerHTML = '';
                    document.getElementById('showPlan').innerHTML = serverAnswer;
                }  
                else {
                    $('#showPlan').innerHTML = '';
                    alert("На данном этаже нет зарегистрированных офисов");
                }
            },
        'text'
    );  

}

function getListBC(){
     if($("#typeInn").length>0)
        var typeInn = document.getElementById('typeInn').value;
    else
        var typeInn = 0;
    
    
    if($("#city").length>0)
        var cityCountry = document.getElementById('city').value;
    else
        var cityCountry = 0;
    
        /*
        *парсим город(страна) на отдельные составляющие : город и страна
        **/
        cityName = '';
        countryName = '';
        var myRe = /(^[ 0-9А-Яа-я_-]+)(\(([ 0-9А-Яа-я_-]+)\))?/g;//регулярка для вытаскивания имен города и страны
        if ((myArray = myRe.exec(cityCountry)) != null) {
            cityName = myArray[1];
            cityName = TrimStr(cityName);
            countryName = myArray[3];
            countryName = TrimStr(countryName);
        }
    

        var  dataSend={
                    query: 'getListBC',
                    typeInn : typeInn,
                    city : cityName,
        }

        $.post(
            W_AJAX + "controllers/controllerCompany.php",
            {
                dataSend : dataSend
            },
            function(data){
                var serverAnswer = data;
                  //  if (serverAnswer != '') {
                        $('#BCinfo').innerHTML = '';
                        document.getElementById('BCinfo').innerHTML = serverAnswer;

                        $('#frameMap').show(); //делаем видимым окно отображения карты

                   // }

                },
            'text'
        );  
}

function pokazat_kartu(karta, lat, lng){
    
    console.log(lat);
    console.log(lng);
    
    $('#frameMap_'+karta).show();
    
    var myOptions = {
        center: new google.maps.LatLng(lat, lng),
        zoom: 13,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    
    var map = new google.maps.Map(document.getElementById("map_canvas_" + karta), myOptions);
    
    var latLng = new google.maps.LatLng(lat, lng);
    
    marker = new google.maps.Marker({ //добавляем новый маркер с координатами щелчка
        position: latLng, //координаты маркера/щелчка
        map: map, //добавляем маркер на уже созданую карту
        icon : W_IMAGES + 'marker3.png'
    });
}


/*
 *функция, закрывающая область с картой
 *@return none
 **/
function closeMap(karta){ 
    $('#frameMap_' + karta).hide();
}